home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / Controls.p < prev    next >
Text File  |  1996-05-01  |  22KB  |  680 lines

  1. {
  2.      File:        Controls.p
  3.  
  4.      Contains:    Control Manager interfaces
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Controls;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __CONTROLS__}
  28. {$SETC __CONTROLS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ControlsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QUICKDRAW__}
  38. {$I Quickdraw.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MENUS__}
  41. {$I Menus.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  49. {
  50. _________________________________________________________________________________________________________
  51.  * CONTROL DEFINITION ID'S
  52. _________________________________________________________________________________________________________
  53.  Standard System 7 procID's
  54. }
  55.  
  56. CONST
  57.     pushButProc                    = 0;
  58.     checkBoxProc                = 1;
  59.     radioButProc                = 2;
  60.     scrollBarProc                = 16;
  61.     popupMenuProc                = 1008;
  62.  
  63. {
  64. _________________________________________________________________________________________________________
  65.  * VARIANT CODES
  66. _________________________________________________________________________________________________________
  67. }
  68.  
  69. TYPE
  70.     ControlVariant                        = SInt16;
  71.  
  72. CONST
  73.     kControlNoVariant            = 0;                            {  No variant }
  74.     kControlUsesOwningWindowsFontVariant = $08;                    {  Control uses owning windows font to display text }
  75.  
  76. {
  77. _________________________________________________________________________________________________________
  78.  * CONTROL PART CODES
  79. _________________________________________________________________________________________________________
  80. }
  81.  
  82. TYPE
  83.     ControlPartCode                        = SInt16;
  84.  
  85. CONST
  86.     kControlNoPart                = 0;
  87.     kControlLabelPart            = 1;
  88.     kControlMenuPart            = 2;
  89.     kControlTrianglePart        = 4;
  90.     kControlButtonPart            = 10;
  91.     kControlCheckBoxPart        = 11;
  92.     kControlRadioButtonPart        = 11;
  93.     kControlUpButtonPart        = 20;
  94.     kControlDownButtonPart        = 21;
  95.     kControlPageUpPart            = 22;
  96.     kControlPageDownPart        = 23;
  97.     kControlIndicatorPart        = 129;
  98.     kControlDisabledPart        = 254;
  99.     kControlInactivePart        = 255;
  100.  
  101. {
  102. _________________________________________________________________________________________________________
  103.  * CHECK BOX VALUES
  104. _________________________________________________________________________________________________________
  105. }
  106.     kControlCheckBoxUncheckedValue = 0;
  107.     kControlCheckBoxCheckedValue = 1;
  108.     kControlCheckBoxMixedValue    = 2;
  109.  
  110. {
  111. _________________________________________________________________________________________________________
  112.  * RADIO BUTTON VALUES
  113. _________________________________________________________________________________________________________
  114. }
  115.     kControlRadioButtonUncheckedValue = 0;
  116.     kControlRadioButtonCheckedValue = 1;
  117.     kControlRadioButtonMixedValue = 2;
  118.  
  119. {
  120. _________________________________________________________________________________________________________
  121.  
  122.  * CONTROL POP-UP MENU CONSTANTS
  123. _________________________________________________________________________________________________________
  124.  Variant codes for the System 7 pop-up menu
  125. }
  126.     popupFixedWidth                = $01;
  127.     popupVariableWidth            = $02;
  128.     popupUseAddResMenu            = $04;
  129.     popupUseWFont                = $08;
  130.  
  131. {  Menu label styles for the System 7 pop-up menu  }
  132.     popupTitleBold                = $0100;
  133.     popupTitleItalic            = $0200;
  134.     popupTitleUnderline            = $0400;
  135.     popupTitleOutline            = $0800;
  136.     popupTitleShadow            = $1000;
  137.     popupTitleCondense            = $2000;
  138.     popupTitleExtend            = $4000;
  139.     popupTitleNoStyle            = $8000;
  140.  
  141. {  Menu label justifications for the System 7 pop-up menu }
  142.     popupTitleLeftJust            = $00000000;
  143.     popupTitleCenterJust        = $00000001;
  144.     popupTitleRightJust            = $000000FF;
  145.  
  146. {
  147. _________________________________________________________________________________________________________
  148.  * CONTROL DRAGGRAYRGN CONSTANTS
  149.    For DragGrayRgnUPP used in TrackControl() 
  150. _________________________________________________________________________________________________________
  151. }
  152.     noConstraint                = 0;
  153.     hAxisOnly                    = 1;
  154.     vAxisOnly                    = 2;
  155.  
  156. {
  157. _________________________________________________________________________________________________________
  158.  * CONTROL COLOR TABLE PART CODES
  159. _________________________________________________________________________________________________________
  160. }
  161.     cFrameColor                    = 0;
  162.     cBodyColor                    = 1;
  163.     cTextColor                    = 2;
  164.     cThumbColor                    = 3;
  165.     kNumberCtlCTabEntries        = 4;
  166.  
  167. {
  168. _________________________________________________________________________________________________________
  169.  * CONTROLHANDLE & CONTROLREF
  170. _________________________________________________________________________________________________________
  171. }
  172.  
  173. TYPE
  174.     ControlRecordPtr = ^ControlRecord;
  175.     ControlPtr                            = ^ControlRecord;
  176.     ControlHandle                        = ^ControlPtr;
  177.     ControlRef                            = ControlHandle;
  178. {
  179. _________________________________________________________________________________________________________
  180.  * CONTROL ACTIONPROC POINTER
  181. _________________________________________________________________________________________________________
  182. }
  183.     ControlActionProcPtr = ProcPtr;  { PROCEDURE ControlAction(theControl: ControlHandle; partCode: ControlPartCode); }
  184.  
  185.     ControlActionUPP = UniversalProcPtr;
  186. {
  187. _________________________________________________________________________________________________________
  188.  * CONTROL COLOR TABLE
  189. _________________________________________________________________________________________________________
  190. }
  191.     CtlCTabPtr = ^CtlCTab;
  192.     CtlCTab = RECORD
  193.         ccSeed:                    SInt32;
  194.         ccRider:                SInt16;
  195.         ctSize:                    SInt16;
  196.         ctTable:                ARRAY [0..3] OF ColorSpec;
  197.     END;
  198.  
  199.     CCTabPtr                            = ^CtlCTab;
  200.     CCTabHandle                            = ^CCTabPtr;
  201. {
  202. _________________________________________________________________________________________________________
  203.  * CONTROL RECORD
  204. _________________________________________________________________________________________________________
  205. }
  206.     ControlRecord = PACKED RECORD
  207.         nextControl:            ControlHandle;
  208.         contrlOwner:            WindowPtr;
  209.         contrlRect:                Rect;
  210.         contrlVis:                UInt8;
  211.         contrlHilite:            UInt8;
  212.         contrlValue:            SInt16;
  213.         contrlMin:                SInt16;
  214.         contrlMax:                SInt16;
  215.         contrlDefProc:            Handle;
  216.         contrlData:                Handle;
  217.         contrlAction:            ControlActionUPP;
  218.         contrlRfCon:            SInt32;
  219.         contrlTitle:            Str255;
  220.     END;
  221.  
  222. {
  223. _________________________________________________________________________________________________________
  224.  * AUXILLARY CONTROL RECORD STRUCTURE
  225. _________________________________________________________________________________________________________
  226. }
  227.     AuxCtlRecPtr = ^AuxCtlRec;
  228.     AuxCtlRec = RECORD
  229.         acNext:                    Handle;
  230.         acOwner:                ControlHandle;
  231.         acCTable:                CCTabHandle;
  232.         acFlags:                SInt16;
  233.         acReserved:                SInt32;
  234.         acRefCon:                SInt32;
  235.     END;
  236.  
  237.     AuxCtlPtr                            = ^AuxCtlRec;
  238.     AuxCtlHandle                        = ^AuxCtlPtr;
  239. {
  240. _________________________________________________________________________________________________________
  241.  * POP-UP MENU PRIVATE DATA STRUCTURE
  242. _________________________________________________________________________________________________________
  243. }
  244.     PopupPrivateDataPtr = ^PopupPrivateData;
  245.     PopupPrivateData = RECORD
  246.         mHandle:                MenuHandle;
  247.         mID:                    SInt16;
  248.     END;
  249.  
  250.     PopupPrivateDataHandle                = ^PopupPrivateDataPtr;
  251. {
  252. _________________________________________________________________________________________________________
  253.  * CONTROL ACTION PROC UPP'S
  254. _________________________________________________________________________________________________________
  255. }
  256.  
  257. CONST
  258.     uppControlActionProcInfo = $000002C0;
  259.  
  260. FUNCTION NewControlActionProc(userRoutine: ControlActionProcPtr): ControlActionUPP;
  261.     {$IFC NOT GENERATINGCFM }
  262.     INLINE $2E9F;
  263.     {$ENDC}
  264.  
  265. PROCEDURE CallControlActionProc(theControl: ControlHandle; partCode: ControlPartCode; userRoutine: ControlActionUPP);
  266.     {$IFC NOT GENERATINGCFM}
  267.     INLINE $205F, $4E90;
  268.     {$ENDC}
  269. {
  270. _________________________________________________________________________________________________________
  271.     
  272.  * CONTROL CREATION / DELETION API'S
  273. _________________________________________________________________________________________________________
  274. }
  275. FUNCTION NewControl(owningWindow: WindowPtr; {CONST}VAR boundsRect: Rect; controlTitle: Str255; initiallyVisible: BOOLEAN; initialValue: SInt16; minimumValue: SInt16; maximumValue: SInt16; procID: SInt16; controlReference: SInt32): ControlHandle;
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $A954;
  278.     {$ENDC}
  279. FUNCTION GetNewControl(resourceID: SInt16; owningWindow: WindowPtr): ControlHandle;
  280.     {$IFC NOT GENERATINGCFM}
  281.     INLINE $A9BE;
  282.     {$ENDC}
  283. PROCEDURE DisposeControl(theControl: ControlHandle);
  284.     {$IFC NOT GENERATINGCFM}
  285.     INLINE $A955;
  286.     {$ENDC}
  287. PROCEDURE KillControls(theWindow: WindowPtr);
  288.     {$IFC NOT GENERATINGCFM}
  289.     INLINE $A956;
  290.     {$ENDC}
  291. {
  292. _________________________________________________________________________________________________________
  293.     
  294.  * CONTROL SHOWING/HIDING API'S
  295. _________________________________________________________________________________________________________
  296. }
  297. PROCEDURE ShowControl(theControl: ControlHandle);
  298.     {$IFC NOT GENERATINGCFM}
  299.     INLINE $A957;
  300.     {$ENDC}
  301. PROCEDURE HideControl(theControl: ControlHandle);
  302.     {$IFC NOT GENERATINGCFM}
  303.     INLINE $A958;
  304.     {$ENDC}
  305. {
  306. _________________________________________________________________________________________________________
  307.     
  308.  * CONTROL DRAWING API'S
  309. _________________________________________________________________________________________________________
  310. }
  311. PROCEDURE DrawControls(theWindow: WindowPtr);
  312.     {$IFC NOT GENERATINGCFM}
  313.     INLINE $A969;
  314.     {$ENDC}
  315. PROCEDURE Draw1Control(theControl: ControlHandle);
  316.     {$IFC NOT GENERATINGCFM}
  317.     INLINE $A96D;
  318.     {$ENDC}
  319. PROCEDURE UpdateControls(theWindow: WindowPtr; updateRegion: RgnHandle);
  320.     {$IFC NOT GENERATINGCFM}
  321.     INLINE $A953;
  322.     {$ENDC}
  323. {
  324. _________________________________________________________________________________________________________
  325.     
  326.  * CONTROL HIGHLIGHT API'S
  327. _________________________________________________________________________________________________________
  328. }
  329. PROCEDURE HiliteControl(theControl: ControlHandle; hiliteState: ControlPartCode);
  330.     {$IFC NOT GENERATINGCFM}
  331.     INLINE $A95D;
  332.     {$ENDC}
  333. {
  334. _________________________________________________________________________________________________________
  335.     
  336.  * CONTROL TRACKING/DRAGGING API'S
  337. _________________________________________________________________________________________________________
  338.     When using the TrackControl() call when tracking an indicator, the actionProc parameter (type ControlActionUPP) 
  339.   should be replaced by a parameter of type DragGrayRgnUPP (see Quickdraw.h).
  340. }
  341. FUNCTION TrackControl(theControl: ControlHandle; startPoint: Point; actionProc: ControlActionUPP): ControlPartCode;
  342.     {$IFC NOT GENERATINGCFM}
  343.     INLINE $A968;
  344.     {$ENDC}
  345. PROCEDURE DragControl(theControl: ControlHandle; startPoint: Point; {CONST}VAR limitRect: Rect; {CONST}VAR slopRect: Rect; axis: DragConstraint);
  346.     {$IFC NOT GENERATINGCFM}
  347.     INLINE $A967;
  348.     {$ENDC}
  349. FUNCTION TestControl(theControl: ControlHandle; testPoint: Point): ControlPartCode;
  350.     {$IFC NOT GENERATINGCFM}
  351.     INLINE $A966;
  352.     {$ENDC}
  353. FUNCTION FindControl(testPoint: Point; theWindow: WindowPtr; VAR theControl: ControlHandle): ControlPartCode;
  354.     {$IFC NOT GENERATINGCFM}
  355.     INLINE $A96C;
  356.     {$ENDC}
  357. {
  358. _________________________________________________________________________________________________________
  359.     
  360.  * CONTROL MOVING/SIZING API'S
  361. _________________________________________________________________________________________________________
  362. }
  363. PROCEDURE MoveControl(theControl: ControlHandle; h: SInt16; v: SInt16);
  364.     {$IFC NOT GENERATINGCFM}
  365.     INLINE $A959;
  366.     {$ENDC}
  367. PROCEDURE SizeControl(theControl: ControlHandle; w: SInt16; h: SInt16);
  368.     {$IFC NOT GENERATINGCFM}
  369.     INLINE $A95C;
  370.     {$ENDC}
  371. {
  372. _________________________________________________________________________________________________________
  373.     
  374.  * CONTROL TITLE API'S
  375. _________________________________________________________________________________________________________
  376. }
  377. PROCEDURE SetControlTitle(theControl: ControlHandle; title: Str255);
  378.     {$IFC NOT GENERATINGCFM}
  379.     INLINE $A95F;
  380.     {$ENDC}
  381. PROCEDURE GetControlTitle(theControl: ControlHandle; VAR title: Str255);
  382.     {$IFC NOT GENERATINGCFM}
  383.     INLINE $A95E;
  384.     {$ENDC}
  385. {
  386. _________________________________________________________________________________________________________
  387.     
  388.  * CONTROL VALUE, MIMIMUM, AND MAXIMUM API'S
  389. _________________________________________________________________________________________________________
  390. }
  391. FUNCTION GetControlValue(theControl: ControlHandle): SInt16;
  392.     {$IFC NOT GENERATINGCFM}
  393.     INLINE $A960;
  394.     {$ENDC}
  395. PROCEDURE SetControlValue(theControl: ControlHandle; newValue: SInt16);
  396.     {$IFC NOT GENERATINGCFM}
  397.     INLINE $A963;
  398.     {$ENDC}
  399. FUNCTION GetControlMinimum(theControl: ControlHandle): SInt16;
  400.     {$IFC NOT GENERATINGCFM}
  401.     INLINE $A961;
  402.     {$ENDC}
  403. PROCEDURE SetControlMinimum(theControl: ControlHandle; newMinimum: SInt16);
  404.     {$IFC NOT GENERATINGCFM}
  405.     INLINE $A964;
  406.     {$ENDC}
  407. FUNCTION GetControlMaximum(theControl: ControlHandle): SInt16;
  408.     {$IFC NOT GENERATINGCFM}
  409.     INLINE $A962;
  410.     {$ENDC}
  411. PROCEDURE SetControlMaximum(theControl: ControlHandle; newMaximum: SInt16);
  412.     {$IFC NOT GENERATINGCFM}
  413.     INLINE $A965;
  414.     {$ENDC}
  415. {
  416. _________________________________________________________________________________________________________
  417.     
  418.  * CONTROL VARIANT AND WINDOW INFORMATION API'S
  419. _________________________________________________________________________________________________________
  420. }
  421. FUNCTION GetControlVariant(theControl: ControlHandle): ControlVariant;
  422.     {$IFC NOT GENERATINGCFM}
  423.     INLINE $A809;
  424.     {$ENDC}
  425. {
  426. _________________________________________________________________________________________________________
  427.     
  428.  * CONTROL ACTION PROC API'S
  429. _________________________________________________________________________________________________________
  430. }
  431. PROCEDURE SetControlAction(theControl: ControlHandle; actionProc: ControlActionUPP);
  432.     {$IFC NOT GENERATINGCFM}
  433.     INLINE $A96B;
  434.     {$ENDC}
  435. FUNCTION GetControlAction(theControl: ControlHandle): ControlActionUPP;
  436.     {$IFC NOT GENERATINGCFM}
  437.     INLINE $A96A;
  438.     {$ENDC}
  439. {
  440. _________________________________________________________________________________________________________
  441.     
  442.  * CONTROL ACCESSOR API'S
  443. _________________________________________________________________________________________________________
  444. }
  445. PROCEDURE SetControlReference(theControl: ControlHandle; data: SInt32);
  446.     {$IFC NOT GENERATINGCFM}
  447.     INLINE $A95B;
  448.     {$ENDC}
  449. FUNCTION GetControlReference(theControl: ControlHandle): SInt32;
  450.     {$IFC NOT GENERATINGCFM}
  451.     INLINE $A95A;
  452.     {$ENDC}
  453. FUNCTION GetAuxiliaryControlRecord(theControl: ControlHandle; VAR acHndl: AuxCtlHandle): BOOLEAN;
  454.     {$IFC NOT GENERATINGCFM}
  455.     INLINE $AA44;
  456.     {$ENDC}
  457. PROCEDURE SetControlColor(theControl: ControlHandle; newColorTable: CCTabHandle);
  458.     {$IFC NOT GENERATINGCFM}
  459.     INLINE $AA43;
  460.     {$ENDC}
  461. {
  462. _________________________________________________________________________________________________________
  463.     
  464.  * VALID 'CDEF' MESSAGES
  465. _________________________________________________________________________________________________________
  466. }
  467.  
  468. TYPE
  469.     ControlDefProcMessage                = SInt16;
  470.  
  471. CONST
  472.     drawCntl                    = 0;
  473.     testCntl                    = 1;
  474.     calcCRgns                    = 2;
  475.     initCntl                    = 3;
  476.     dispCntl                    = 4;
  477.     posCntl                        = 5;
  478.     thumbCntl                    = 6;
  479.     dragCntl                    = 7;
  480.     autoTrack                    = 8;
  481.     calcCntlRgn                    = 10;
  482.     calcThumbRgn                = 11;
  483.     drawThumbOutline            = 12;
  484.  
  485. {
  486. _________________________________________________________________________________________________________
  487.     
  488.  * MAIN ENTRY POINT FOR 'CDEF'
  489. _________________________________________________________________________________________________________
  490. }
  491.  
  492. TYPE
  493.     ControlDefProcPtr = ProcPtr;  { FUNCTION ControlDef(varCode: SInt16; theControl: ControlHandle; message: ControlDefProcMessage; param: SInt32): SInt32; }
  494.  
  495.     ControlDefUPP = UniversalProcPtr;
  496.  
  497. CONST
  498.     uppControlDefProcInfo = $00003BB0;
  499.  
  500. FUNCTION NewControlDefProc(userRoutine: ControlDefProcPtr): ControlDefUPP;
  501.     {$IFC NOT GENERATINGCFM }
  502.     INLINE $2E9F;
  503.     {$ENDC}
  504.  
  505. FUNCTION CallControlDefProc(varCode: SInt16; theControl: ControlHandle; message: ControlDefProcMessage; param: SInt32; userRoutine: ControlDefUPP): SInt32;
  506.     {$IFC NOT GENERATINGCFM}
  507.     INLINE $205F, $4E90;
  508.     {$ENDC}
  509. {
  510. _________________________________________________________________________________________________________
  511.     
  512.  * CONSTANTS FOR DRAWCNTL MESSAGE PASSED IN PARAM
  513. _________________________________________________________________________________________________________
  514. }
  515.  
  516. CONST
  517.     kDrawControlEntireControl    = 0;
  518.     kDrawControlIndicatorOnly    = 129;
  519.  
  520. {
  521. _________________________________________________________________________________________________________
  522.     
  523.  * CONSTANTS FOR DRAGCNTL MESSAGE PASSED IN PARAM
  524. _________________________________________________________________________________________________________
  525. }
  526.     kDragControlEntireControl    = 0;
  527.     kDragControlIndicator        = 1;
  528.  
  529. {
  530. _________________________________________________________________________________________________________
  531.     
  532.  * DRAG CONSTRAINT STRUCTURE PASSED IN PARAM FOR THUMBCNTL MESSAGE (IM I-332)
  533. _________________________________________________________________________________________________________
  534. }
  535.  
  536. TYPE
  537.     IndicatorDragConstraintPtr = ^IndicatorDragConstraint;
  538.     IndicatorDragConstraint = RECORD
  539.         limitRect:                Rect;
  540.         slopRect:                Rect;
  541.         axis:                    DragConstraint;
  542.     END;
  543.  
  544.     IndicatorDragConstraintHandle        = ^IndicatorDragConstraintPtr;
  545. {$IFC OLDROUTINENAMES }
  546. {
  547. _________________________________________________________________________________________________________
  548.  * OLDROUTINENAMES
  549. _________________________________________________________________________________________________________
  550.  Variants applicable to all controls (at least ones with text)
  551. }
  552.  
  553. CONST
  554.     useWFont                    = 8;
  555.  
  556.     inLabel                        = 1;
  557.     inMenu                        = 2;
  558.     inTriangle                    = 4;
  559.     inButton                    = 10;
  560.     inCheckBox                    = 11;
  561.     inUpButton                    = 20;
  562.     inDownButton                = 21;
  563.     inPageUp                    = 22;
  564.     inPageDown                    = 23;
  565.     inThumb                        = 129;
  566.  
  567.     kNoHiliteControlPart        = 0;
  568.     kInLabelControlPart            = 1;
  569.     kInMenuControlPart            = 2;
  570.     kInTriangleControlPart        = 4;
  571.     kInButtonControlPart        = 10;
  572.     kInCheckBoxControlPart        = 11;
  573.     kInUpButtonControlPart        = 20;
  574.     kInDownButtonControlPart    = 21;
  575.     kInPageUpControlPart        = 22;
  576.     kInPageDownControlPart        = 23;
  577.     kInIndicatorControlPart        = 129;
  578.     kReservedControlPart        = 254;
  579.     kControlInactiveControlPart    = 255;
  580.  
  581. PROCEDURE SetCTitle(theControl: ControlHandle; title: Str255);
  582.     {$IFC NOT GENERATINGCFM}
  583.     INLINE $A95F;
  584.     {$ENDC}
  585. PROCEDURE GetCTitle(theControl: ControlHandle; VAR title: Str255);
  586.     {$IFC NOT GENERATINGCFM}
  587.     INLINE $A95E;
  588.     {$ENDC}
  589. PROCEDURE UpdtControl(theWindow: WindowPtr; updateRgn: RgnHandle);
  590.     {$IFC NOT GENERATINGCFM}
  591.     INLINE $A953;
  592.     {$ENDC}
  593. PROCEDURE SetCtlValue(theControl: ControlHandle; theValue: INTEGER);
  594.     {$IFC NOT GENERATINGCFM}
  595.     INLINE $A963;
  596.     {$ENDC}
  597. FUNCTION GetCtlValue(theControl: ControlHandle): INTEGER;
  598.     {$IFC NOT GENERATINGCFM}
  599.     INLINE $A960;
  600.     {$ENDC}
  601. PROCEDURE SetCtlMin(theControl: ControlHandle; minValue: INTEGER);
  602.     {$IFC NOT GENERATINGCFM}
  603.     INLINE $A964;
  604.     {$ENDC}
  605. FUNCTION GetCtlMin(theControl: ControlHandle): INTEGER;
  606.     {$IFC NOT GENERATINGCFM}
  607.     INLINE $A961;
  608.     {$ENDC}
  609. PROCEDURE SetCtlMax(theControl: ControlHandle; maxValue: INTEGER);
  610.     {$IFC NOT GENERATINGCFM}
  611.     INLINE $A965;
  612.     {$ENDC}
  613. FUNCTION GetCtlMax(theControl: ControlHandle): INTEGER;
  614.     {$IFC NOT GENERATINGCFM}
  615.     INLINE $A962;
  616.     {$ENDC}
  617. PROCEDURE SetCRefCon(theControl: ControlHandle; data: LONGINT);
  618.     {$IFC NOT GENERATINGCFM}
  619.     INLINE $A95B;
  620.     {$ENDC}
  621. FUNCTION GetCRefCon(theControl: ControlHandle): LONGINT;
  622.     {$IFC NOT GENERATINGCFM}
  623.     INLINE $A95A;
  624.     {$ENDC}
  625. PROCEDURE SetCtlAction(theControl: ControlHandle; actionProc: ControlActionUPP);
  626.     {$IFC NOT GENERATINGCFM}
  627.     INLINE $A96B;
  628.     {$ENDC}
  629. FUNCTION GetCtlAction(theControl: ControlHandle): ControlActionUPP;
  630.     {$IFC NOT GENERATINGCFM}
  631.     INLINE $A96A;
  632.     {$ENDC}
  633. PROCEDURE SetCtlColor(theControl: ControlHandle; newColorTable: CCTabHandle);
  634.     {$IFC NOT GENERATINGCFM}
  635.     INLINE $AA43;
  636.     {$ENDC}
  637. FUNCTION GetCVariant(theControl: ControlHandle): INTEGER;
  638.     {$IFC NOT GENERATINGCFM}
  639.     INLINE $A809;
  640.     {$ENDC}
  641. {$ENDC}
  642. {
  643. *****************************************************************************
  644. *                                                                           *
  645. * The conditional STRICT_CONTROLS has been removed from this interface file.*
  646. * The accessor macros to a ControlRecord are no longer necessary.           *
  647. *                                                                           *
  648. *****************************************************************************
  649.  
  650. Details:
  651. The original purpose of the STRICT_ conditionals and accessor macros was to
  652. help ease the transition to Copland.   Shared data structures are difficult
  653. to coordinate in a preemptive multitasking OS.  By hiding the fields in a
  654. WindowRecord and other data structures, we would begin the migration to 
  655. system data structures being completely hidden from applications. 
  656.  
  657. After many design reviews, it was finally concluded that with this sort of
  658. migration, the system could never tell when an application was no longer 
  659. peeking at a WindowRecord, and thus the data structure might never become 
  660. system owned.  Additionally, there were many other limitations in the classic
  661. toolbox that were begging to be addressed.
  662.  
  663. The final decision was to leave the traditional toolbox as a compatibility mode.
  664. The preferred toolbox API for Copland is a new SOM(tm) based architecture 
  665. (e.g. HIWindows.idl).  Windows, menu, controls, etc are each a SOM object 
  666. with methods for drawing, event handling, and customization.
  667.  
  668. }
  669. {$ENDC}
  670. {$ALIGN RESET}
  671. {$POP}
  672.  
  673. {$SETC UsingIncludes := ControlsIncludes}
  674.  
  675. {$ENDC} {__CONTROLS__}
  676.  
  677. {$IFC NOT UsingIncludes}
  678.  END.
  679. {$ENDC}
  680.